package cn.iocoder.yudao.module.infra.service.face;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.infra.controller.admin.face.vo.FaceRecordPageReqVO;
import cn.iocoder.yudao.module.infra.dal.dataobject.face.FaceRecordDO;

/**
 * 人脸记录 Service 接口
 *
 * @author 芋道源码
 */
public interface FaceRecordService {

    /**
     * 创建人脸记录
     *
     * @param faceRecord 人脸记录
     * @return 记录ID
     */
    Long createRecord(FaceRecordDO faceRecord);

    /**
     * 更新人脸记录
     *
     * @param faceRecord 人脸记录
     */
    void updateRecord(FaceRecordDO faceRecord);

    /**
     * 删除人脸记录
     *
     * @param id 记录ID
     */
    void deleteRecord(Long id);

    /**
     * 根据用户ID获取人脸记录
     *
     * @param userId 用户ID
     * @return 人脸记录
     */
    FaceRecordDO getRecordByUserId(Long userId);

    /**
     * 根据人脸标识获取人脸记录
     *
     * @param faceToken 人脸标识
     * @return 人脸记录
     */
    FaceRecordDO getRecordByFaceToken(String faceToken);

    /**
     * 获取人脸记录
     *
     * @param id 记录ID
     * @return 人脸记录
     */
    FaceRecordDO getRecord(Long id);

    /**
     * 获得人脸记录分页
     *
     * @param pageReqVO 分页查询
     * @return 人脸记录分页
     */
    PageResult<FaceRecordDO> getRecordPage(FaceRecordPageReqVO pageReqVO);

}